package com.newlink.building.userinfo.mvp.contract

import com.newlink.building.common_base.base.IModel
import com.newlink.building.common_base.base.IPresenter
import com.newlink.building.common_base.base.IView
import com.newlink.building.common_base.model.bean.FamilyListData
import com.newlink.building.common_base.model.bean.FamilyManagementListData1
import com.newlink.building.common_base.model.bean.HttpResult
import io.reactivex.Observable

/**
 * @author wangyang
 * @date 2022/9/16
 * @description 我的——家庭管理页面的Contract
 */
interface Module_UserInfo_FamilyManagementContract {

    interface Model : IModel {
        fun getFamilyManagementList(
            token: String,
            page: Int,
            limit: Int
        ): Observable<HttpResult<FamilyListData>>

        fun getFamilyMaxMemberCount(
            token: String,
            masterUserId: Long,
            prjType: Int
        ): Observable<HttpResult<Int>>
    }

    interface View : IView {
        fun getFamilyManagementListSuccess(list: MutableList<FamilyManagementListData1>)
        fun getFamilyManagementListFail()
        fun getFamilyMaxMemberCountSuccess(count: Int)
        fun getFamilyMaxMemberCountFail()
    }

    interface Presenter : IPresenter<View> {
        fun getFamilyManagementList(
            token: String,
            page: Int,
            limit: Int
        )

        fun getFamilyMaxMemberCount(
            token: String,
            masterUserId: Long,
            prjType: Int
        )
    }


}